# -*- coding: utf-8 -*-

# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html

import logging

logger = logging.getLogger(__name__)

class MyspiderPipeline(object):
    def process_item(self, item, spider):   #该方法名字禁止更改
        """需要额外添加键值"""
        # if item["come_from"] == "itcast":
        #     ...
        # elif ...:
        #     ...
        # else:
        #     ...

        """直接使用spider.name属性"""
        if spider.name == "itcast":
            logger.warning("-"*10)
        elif ...:
            pass
        else:
            pass
        return item

class MyspiderPipeline2(object):
    def process_item(self, item, spider):
        if item["come_from"] == "itcast1":
            ...
        elif ...:
            pass
        else:
            pass
        return item


"""

注意
    pipeline中process_item方法名不能修改，修改会报错
    pipeline(管道)可以有多个
    设置了pipelines必须开启管道,权重越小优先级越高
    
为什么需要多个pipeline:
    可能会有多个spider,不同的pipeline处理不同的item的内容
    一个spider的内容可能要做不同的操作,比如存入不同的数据库中

多个pipeline权重不同，之间的关系是串联的

"""